/*
 * CMovimentavel.h
 *
 *  Created on: 27/08/2008
 *      Author: samuel.grigolato
 */

#ifndef CMOVIMENTAVEL_H_
#define CMOVIMENTAVEL_H_

#include "../CEntity.h"
#include "../CEvent.h"

class CMovimentavel: public CEntity, public CEvent {
public:
	CMovimentavel();
	virtual ~CMovimentavel();

	virtual void OnKeyDown(SDLKey sym, SDLMod mod, Uint16 unicode);
	virtual void OnKeyUp(SDLKey sym, SDLMod mod, Uint16 unicode);
	virtual void OnLoop();
	virtual void AtualizaVelocidade();
	virtual void AtualizaPosicao();
	virtual void CorrigeMovimentacao();
	virtual int RecuperaPropVelocidadeX(CResultadoColisao Resultado);
	virtual int RecuperaPropVelocidadeY(CResultadoColisao Resultado);
	virtual void ProcessaResultadoColisao(CResultadoColisao Resultado);
	virtual void AtualizaAnimState();

	virtual void ProcessaColisao();

	int FatorVelocidade;
	int FatorPatins;

protected:
	int VelocidadeY;
	int VelocidadeX;

	bool MovCima;
	bool MovBaixo;
	bool MovEsquerda;
	bool MovDireita;

	int UltimaMovimentacao;

};

#endif /* CMOVIMENTAVEL_H_ */
